package com.huishu.order.pojo.dto;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;

/**
 * @ClassName：CreateOrderDTO
 * @Author: ljj
 * @Date: 2023/4/12 14:13
 */
@Data
public class CreateOrderDTO {

    /**
     * 购物车ids
     */
    private List<Long> cartItemIds;

    /**
     * 总金额
     */
    private BigDecimal totalAmount;

    /**
     * 运费
     */
    private BigDecimal freightAmount;

    /**
     * 优惠券抵扣金额
     */
    private BigDecimal couponAmount;

    /**
     * 满减优化金额
     */
    private BigDecimal promotionAmount;

    /**
     * 实际支付金额
     */
    private BigDecimal payAmount;

    /**
     * 使用的优惠卷id
     */
    private List<Long> couponIds;

    /**
     * 发票类型：0->不开发票；1->电子发票；2->纸质发票
     */
    private Integer billType;

    /**
     * 收票人电话
     */
    private String billReceiverPhone;

    /**
     * 收票人姓名
     */
    private String billReceiverName;

    /**
     * 收票人省份/直辖市
     */
    private String billReceiverProvince;

    /**
     * 收票人城市
     */
    private String billReceiverCity;

    /**
     * 收票人区
     */
    private String billReceiverRegion;

    /**
     * 收票人详细地址
     */
    private String billReceiverDetailAddress;

    /**
     * 收货人姓名
     */
    private String receiverName;

    /**
     * 收货人电话
     */
    private String receiverPhone;

    /**
     * 收货人邮编
     */
    private String receiverPostCode;

    /**
     * 省份/直辖市
     */
    private String receiverProvince;

    /**
     * 城市
     */
    private String receiverCity;

    /**
     * 区
     */
    private String receiverRegion;

    /**
     * 详细地址
     */
    private String receiverDetailAddress;

    /**
     * 订单备注
     */
    private String note;

    /**
     * 福利码
     */
    private String welfareCode;


    /**
     * 商品list
     */
    private List<OrderProduct> orderProducts;

    /**
     * 商品数据
     */
    @AllArgsConstructor
    @NoArgsConstructor
    @Data
    public static class OrderProduct{
        /**
         * 商品id
         */
        private Long id;

        /**
         * 商品itemId
         */
        private Long productItemId;

        /**
         * 商品规格
         */
        private String productSpecifications;

        /**
         * 商品分类id
         */
        private Long productCategoryId;

        /**
         * skucode
         */
        private String skuCode;

        /**
         * 商品名称
         */
        private String name;

        /**
         * 商品图片
         */
        private String albumPics;

        /**
         * 商品单价格
         */
        private BigDecimal price;

        /**
         * 商品促销,满减分解金额
         */
        private BigDecimal promotionAmount;

        /**
         * 总金额
         */
        private BigDecimal totalAmount;

        /**
         * 该商品经过优惠后的金额
         */
        private BigDecimal realAmount;

        /**
         * 数量
         */
        private Integer num;

        /**
         * 商品类型 1.正常商品 2 商品主动赠予 3.满减赠品 4.样品 5 暗号赠品
         */
        private Integer type;

        /**
         * 父id(代表哪个商品赠送的)
         */
        private Long parentProductId;

        /**
         * 可获得的积分
         */
        private Integer integration;
    }
}
